The present invention relates to a method for tracking agents in a multilevel hierarchical structure across loss of state events.
Modern microprocessors often include agents attached to a communications bus that are intended to perform various functions. One particular structure of agents may be a multilevel, hierarchical structure where the agents in one level of the hierarchy are uniquely associated with one and only one agent located on the immediately higher level in the hierarchy. The highest level of this hierarchy is occupied by a single root agent that interfaces with a host, which performs other functions of the microprocessor.
Agents may be identified with a plurality of identifying variables that denote for example, the agents""s location on the communications bus or purpose of operation. These variables may be categorized into two distinct groups: (1) variables that are a function of the agent""s position in relation to other agents in the hierarchical communications bus structure (xe2x80x9cdependent variablesxe2x80x9d); and (2) variables that are independent of the agent""s relation to the position of other agents within the hierarchical communications bus structure (xe2x80x9cindependent variablesxe2x80x9d).
During the operation of the microprocessor, agents may be added to a communications bus, removed from the communications bus, or switched from one place on the communications bus to another (xe2x80x9cagent switchesxe2x80x9d). These agent switches may occur either while the microprocessor is operating or is not operating. In order to dynamically track the locations of agents along the communications bus structure, a check of the communications bus structure may be performed after each event where an agent switch could potentially occur (xe2x80x9closs of state eventxe2x80x9d) to determine whether one or more agent switches did, in fact, occur during the loss of state event. In prior art systems such as the Extended System Configuration Data (ESCD), the tracking of an agent""s position along a hierarchical communications bus structure after a loss of state event required the use of dependent variables. Because the values of the dependent variables associated with a particular agent may change after an agent moves locations within the communications bus structure, it was inefficient to determine whether one or more agent switches had taken place after a loss of state event. Accordingly, there is a need in the art for a system and method that tracks the locations of agents in a hierarchical communications bus structure after loss of state events that exclusively utilizes independent variables that do not depend on the location of any particular agent within a hierarchical multilevel communications bus structure.
Embodiments of the present invention provide for a method including determining the number of terminal agents within a hierarchical agent system, forming a first matrix containing data identifying a plurality of agents within the hierarchical agent system, determining whether a potential loss of state event has occurred, forming a second matrix containing data identifying a plurality of agents within the hierarchical agent system and comparing the first matrix to the second matrix.